From 5cda824784321b4780808a39985e7cb57044dfbb Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 7 May 2020 14:22:12 -0400 Subject: [PATCH] grid: Add gtk_grid_remove This is a replacement for gtk_container_remove. --- docs/reference/gtk/gtk4-sections.txt | 1 + gtk/gtkgrid.c | 25 ++++++++++++++++++++++--- gtk/gtkgrid.h | 12 ++++++++---- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index f5af282172..63a8916aa3 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -5284,6 +5284,7 @@ GtkGridClass gtk_grid_new gtk_grid_attach gtk_grid_attach_next_to +gtk_grid_remove gtk_grid_get_child_at gtk_grid_insert_row gtk_grid_insert_column diff --git a/gtk/gtkgrid.c b/gtk/gtkgrid.c index 89af6bc311..d14860fe8f 100644 --- a/gtk/gtkgrid.c +++ b/gtk/gtkgrid.c @@ -287,8 +287,8 @@ gtk_grid_add (GtkContainer *container, } static void -gtk_grid_remove (GtkContainer *container, - GtkWidget *child) +gtk_grid_real_remove (GtkContainer *container, + GtkWidget *child) { GtkGrid *grid = GTK_GRID (container); gboolean was_visible; @@ -335,7 +335,7 @@ gtk_grid_class_init (GtkGridClass *class) object_class->set_property = gtk_grid_set_property; container_class->add = gtk_grid_add; - container_class->remove = gtk_grid_remove; + container_class->remove = gtk_grid_real_remove; container_class->forall = gtk_grid_forall; container_class->child_type = gtk_grid_child_type; @@ -580,6 +580,25 @@ gtk_grid_get_child_at (GtkGrid *grid, return NULL; } +/** + * gtk_grid_remove: + * @grid: a #GtkGrid + * @child: the child widget to remove + * + * Removes a child from @grid, after it has been added + * with gtk_grid_attach() or gtk_grid_attach_next_to(). + */ +void +gtk_grid_remove (GtkGrid *grid, + GtkWidget *child) +{ + g_return_if_fail (GTK_IS_GRID (grid)); + g_return_if_fail (GTK_IS_WIDGET (child)); + g_return_if_fail (gtk_widget_get_parent (child) == grid); + + gtk_widget_unparent (child); +} + /** * gtk_grid_insert_row: * @grid: a #GtkGrid diff --git a/gtk/gtkgrid.h b/gtk/gtkgrid.h index 243e11c17a..294e9942fa 100644 --- a/gtk/gtkgrid.h +++ b/gtk/gtkgrid.h @@ -82,6 +82,10 @@ GtkWidget *gtk_grid_get_child_at (GtkGrid *grid, gint left, gint top); GDK_AVAILABLE_IN_ALL +void gtk_grid_remove (GtkGrid *grid, + GtkWidget *child); + +GDK_AVAILABLE_IN_ALL void gtk_grid_insert_row (GtkGrid *grid, gint position); GDK_AVAILABLE_IN_ALL @@ -119,14 +123,14 @@ GDK_AVAILABLE_IN_ALL guint gtk_grid_get_column_spacing (GtkGrid *grid); GDK_AVAILABLE_IN_ALL void gtk_grid_set_row_baseline_position (GtkGrid *grid, - gint row, - GtkBaselinePosition pos); + gint row, + GtkBaselinePosition pos); GDK_AVAILABLE_IN_ALL GtkBaselinePosition gtk_grid_get_row_baseline_position (GtkGrid *grid, - gint row); + gint row); GDK_AVAILABLE_IN_ALL void gtk_grid_set_baseline_row (GtkGrid *grid, - gint row); + gint row); GDK_AVAILABLE_IN_ALL gint gtk_grid_get_baseline_row (GtkGrid *grid); -- 2.30.2